mackerel-agentをインストール後、Monitorsに監視項目が追加されない時はMackerel上のホストのステータスを確認しよう
こんにちは、岩城です。
MackerelでEC2インスタンスのメトリクスの取得や監視をする場合、デフォルトではCloudWatchメトリクスに基づきます。 さらに、LinuxOS系にmackerel-agentをインストールすれば、以下メトリクスの取得や監視を行うことも可能です。
- connectivity(死活監視)
- ロードアベレージ
- CPU使用率
- メモリ使用率
- ファイルシステム使用量
- ディスクIOPS
- ネットワークインターフェース毎の転送量
本エントリでは、connectivity、メモリ使用率、ファイルシステム使用量を監視するようにMonitorsを設定したのに、mackerel-agentをインストールしても監視されずにハマったことおよび解決方法を紹介します。
何が起きていたのか
以下のようにMonitorsに監視項目を設定していました。
なので、mackerel-agentをインストールすれば、自動的にconnectivity、メモリ使用率、ファイルシステム使用量の監視が開始されると思っていましたが、この時は開始されませんでした。
Mackerelで当該インスタンスを認識できていたので、AWSインテグレーションの設定は問題なさそうです。また、mackerel-agentの問題を疑いましたが、connectivityを始めとするメトリクスを取得できていたため、これも問題ないと判断しました。
では、何が問題なのでしょうか。
ホストのステータスを確認しよう
Monitorsに監視項目が追加されない原因は、Mackerel上のホストのステータスがmaintenance
だったからです。
Mackerelのドキュメントには以下の表が記載されており、maintenance
は監視されないとあります。
図:ステータスと監視の関係(引用元)
当該インスタンスは、まだ本番運用前であり、アラートの通知を避けたかったため、mantenance
としていました。
その後、mackrel-agentをインストールしましたが、maintenance
でインストールするとMonitorsに監視項目が即座に追加されないようです。
引き続きアラートの通知を受け取りたくないのでstandby
にして、Monitorsに監視項目が追加されることを確認します。
standby
に変更後、2〜3分で追加されました!
おわりに
mackerel-agentのroles
の設定が足りていないと疑ったりしましたが、蓋を開けてみると単純なことでした。standby
とmaintenace
ステータスの意味を改めて知る良い機会でした。
本エントリがどなたかのお役に立てれば幸いです。